🧑💻 Решение задачи про поиск повторяющихся элементов в массиве
Задача: Дан массив с целыми числами длины n, все элементы которого лежат в диапазоне [1, n]. Каждый элемент появляется в массиве либо единожды, либо дважды. Требуется найти все числа, которые появляются дважды. Алгоритм должен работать за O(n).
Решение 1: Довольно очевидный способ с использованием множеств. Создаём два множества, проходимся в цикле по массиву и проверяем, если элемент уже есть в первом множестве, то добавляем его в результирующее множество. Возвращаем результирующее множество.
Решение 2 (быстрее и использует меньше памяти): Используем тот факт, что все числа массива находятся в диапазоне от 1 до n. Создаём результирующий список и идём в цикле по массиву. Вычисляем на основе каждого элемента index, а затем берём элемент массива по этому индексу. Если элемент по индексу неотрицательный, то заменяем его отрицательным. Если отрицательный, то добавляем изначальный элемент в результирующий список.
🧑💻 Решение задачи про поиск повторяющихся элементов в массиве
Задача: Дан массив с целыми числами длины n, все элементы которого лежат в диапазоне [1, n]. Каждый элемент появляется в массиве либо единожды, либо дважды. Требуется найти все числа, которые появляются дважды. Алгоритм должен работать за O(n).
Решение 1: Довольно очевидный способ с использованием множеств. Создаём два множества, проходимся в цикле по массиву и проверяем, если элемент уже есть в первом множестве, то добавляем его в результирующее множество. Возвращаем результирующее множество.
Решение 2 (быстрее и использует меньше памяти): Используем тот факт, что все числа массива находятся в диапазоне от 1 до n. Создаём результирующий список и идём в цикле по массиву. Вычисляем на основе каждого элемента index, а затем берём элемент массива по этому индексу. Если элемент по индексу неотрицательный, то заменяем его отрицательным. Если отрицательный, то добавляем изначальный элемент в результирующий список.
#junior #middle
BY Библиотека собеса по Data Science | вопросы с собеседований
Secure video calling is in high demand. As an alternative to Zoom, many people are using end-to-end encrypted apps such as WhatsApp, FaceTime or Signal to speak to friends and family face-to-face since coronavirus lockdowns started to take place across the world. There’s another option—secure communications app Telegram just added video calling to its feature set, available on both iOS and Android. The new feature is also super secure—like Signal and WhatsApp and unlike Zoom (yet), video calls will be end-to-end encrypted.
Traders also expressed uncertainty about the situation with China Evergrande, as the indebted property company has not provided clarification about a key interest payment.In economic news, the Commerce Department reported an unexpected increase in U.S. new home sales in August.Crude oil prices climbed Friday and front-month WTI oil futures contracts saw gains for a fifth straight week amid tighter supplies. West Texas Intermediate Crude oil futures for November rose $0.68 or 0.9 percent at 73.98 a barrel. WTI Crude futures gained 2.8 percent for the week.
Библиотека собеса по Data Science | вопросы с собеседований from it